package com.lemon.cloud.admin.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;

@Data
public class MenuDTO implements Serializable {
    private Long id;

    /**
     * 菜单名称
     */
    @Schema(description = "菜单名称")
    @NotEmpty(message = "菜单名称不能为空")
    private String name;

    /**
     * 菜单权限标识
     */
    @Schema(description = "菜单权限标识")
    private String permission;

    /**
     * 前端URL
     */
    @Schema(description = "前端URL")
    private String path;

    /**
     * 父菜单ID
     */
    @Schema(description = "父菜单ID")
    @NotNull(message = "菜单父ID不能为空")
    private Long parentId;

    @Schema(description = "父菜单appId")
    private Long appId;

    /**
     * 图标
     */
    @Schema(description = "图标")
    private String icon;

    /**
     * 排序值
     */
    @Schema(description = "排序值")
    private Integer sortOrder;
    /**
     * 菜单类型 （0菜单 1按钮 2应用）
     */
    @Schema(description = "菜单类型 （0菜单 1按钮 2应用）")
    @NotNull(message = "菜单类型不能为空")
    private String type;
}
